1. Field of Invention
The present invention relates to the error-correcting code in digital communication system, particularly to a decoding method of QC-LDPC code used as an error-correcting coding method.
2. Description of Prior Art
Due to noise and interference, errors may occur in digital signals during transmission. Therefore, error-correcting code technique is generally applied to ensure reliable transmission in communication system. First proposed by Gallager, Low-Density Parity Check (LDPC) code is a linear block error-correcting code of highly sparse check matrix with the number of “1” far less than that of “0”. Further study by Mackay shows that the performance of LDPC codes can approach Shannon Limit under Belief Propagation decoding algorithm, and the decoding method is far less complex than that of Turbo codes and has a relatively low Error Floor. Thus, LDPC is generally regarded as one of the most promising error-correcting coding methods today.
To solve the problem of the high complexity of LDPC code decoding, a type of LDPC code with Quasi Circulant structure has been proposed in recent years. The check matrix of QC-LDPC code consists of several sub matrices, each comprising either of a single zero matrix, or of a single, or in more general form, several Circulant Permutation Matrices are derived from circular shift on identity matrix. QC-LDPC code can be coded through means of simple shift register and the regularity of its check matrix structure can greatly reduce the storage space needed for check matrices and facilitate the data addressing in decoding process.
The decoding process of LDPC code is a procedure of message passing of continuous iteration, which generally includes the following 4 steps:
1. Initialization: Computing initial information of each variable node based on the code element signal received.
2. Check node updating: Computing new check node information based on the information transmitted from its connected variable node and pass on the result to the variable node.
3. Variable node updating: Computing new variable node information based on the information transmitted from its connected check node.
4. Parity check: insert the new variable node information into check formulas and perform parity check. If all the check formulas are met, the decoding is deemed to be successful; If certain check formula is not met, the new variable node information is transmitted again to check node and step 2 and 3 are repeated until decoding is successful or the maximal iteration number is reached.
LDPC code decoder is usually realized through applying specialized hardware circuit and improves its decoding throughput by parallel structure. However, its fixed structure can hardly satisfy the decoding of LDPC code with different parameters (code length and code rate) and check matrix structures. Although using software can achieve the universality of LDPC code decoder, it will cost a great amount of computing time processing complex information, particularly check node updating, thus barely able to achieve efficient decoding throughput.